package com.example.springboot.dto;

import java.math.BigDecimal;

public class    OrderRequest {
    private Integer deviceId;
    private Integer userId;  // 修改为 Integer 类型
    private Integer packageId;
    private String paymentMethod; // 添加支付方式
    private CustomOptions customOptions;
    private String orderType;  // 新增订单类型字段
    // 新增商家订单字段
    private Integer merchantId;
    private String serviceType; // "pickup_only" 或 "full_service"
    private String address;
    private String contactNumber;
    private BigDecimal orderAmount;
    private Double addressLatitude;   // 取件地址纬度
    private Double addressLongitude;
    private Integer pointId;


    // Getters and Setters
    public Integer getDeviceId() {
        return deviceId;
    }

    public void setDeviceId(Integer deviceId) {
        this.deviceId = deviceId;
    }

    public Integer getUserId() {  // 修改为 Integer 类型
        return userId;
    }

    public void setUserId(Integer userId) {  // 修改为 Integer 类型
        this.userId = userId;
    }

    public Integer getPackageId() {
        return packageId;
    }

    public void setPackageId(Integer packageId) {
        this.packageId = packageId;
    }

    public String getPaymentMethod() {
        return paymentMethod;
    }

    public void setPaymentMethod(String paymentMethod) {
        this.paymentMethod = paymentMethod;
    }

    public CustomOptions getCustomOptions() {
        return customOptions;
    }

    public void setCustomOptions(CustomOptions customOptions) {
        this.customOptions = customOptions;
    }

    public String getOrderType() {
        return orderType;
    }

    public void setOrderType(String orderType) {
        this.orderType = orderType;
    }

    public static class CustomOptions {
        private Integer waterOptionId;
        private Integer programId;
        private Integer scentId;
        private Integer dryingId;

        // Getters and Setters
        public Integer getWaterOptionId() {
            return waterOptionId;
        }

        public void setWaterOptionId(Integer waterOptionId) {
            this.waterOptionId = waterOptionId;
        }

        public Integer getProgramId() {
            return programId;
        }

        public void setProgramId(Integer programId) {
            this.programId = programId;
        }

        public Integer getScentId() {
            return scentId;
        }

        public void setScentId(Integer scentId) {
            this.scentId = scentId;
        }

        public Integer getDryingId() {
            return dryingId;
        }

        public void setDryingId(Integer dryingId) {
            this.dryingId = dryingId;
        }
    }
    // 新增 getters and setters
    public Integer getMerchantId() {
        return merchantId;
    }

    public void setMerchantId(Integer merchantId) {
        this.merchantId = merchantId;
    }

    public String getServiceType() {
        return serviceType;
    }

    public void setServiceType(String serviceType) {
        this.serviceType = serviceType;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getContactNumber() {
        return contactNumber;
    }

    public void setContactNumber(String contactNumber) {
        this.contactNumber = contactNumber;
    }

    public BigDecimal getOrderAmount() {
        return orderAmount;
    }

    public void setOrderAmount(BigDecimal orderAmount) {
        this.orderAmount = orderAmount;
    }
    public Double getAddressLatitude() {
        return addressLatitude;
    }

    public void setAddressLatitude(Double addressLatitude) {
        this.addressLatitude = addressLatitude;
    }

    public Double getAddressLongitude() {
        return addressLongitude;
    }

    public void setAddressLongitude(Double addressLongitude) {
        this.addressLongitude = addressLongitude;
    }
    public Integer getPointId() {
        return pointId;
    }

    public void setPointId(Integer pointId) {
        this.pointId = pointId;
    }

}
